//#include <iostream>
//#include <set>
//#include <vector>
//using namespace std;
//
//int gcd(int a, int b)
//{
//	if (a == b) return a;
//
//	if (a < b) return gcd(a, b - a);
//
//	if (a > b) return gcd(a - b, b);
//}
//
//int main()
//{
//	int n, x0, y0;
//	cin >> n >> x0 >> y0;
//
//	vector<pair<int,int>> vpi;
//	for (int i = 0; i < n; ++i)
//	{
//		int x, y;
//		cin >> x >> y;
//		vpi.push_back(make_pair(x, y));
//	}
//
//	int xy[2] = { 0 };
//	set<pair<int, int>> spi;
//	for (int i = 0; i < vpi.size(); ++i)
//	{
//		int up = vpi[i].second - y0;
//		int down = vpi[i].first - x0;
//
//		if (up == 0)
//			xy[1] = 1;
//		else if (down == 0)
//			xy[0] = 1;
//		else
//		{
//			if (up < 0 && down < 0
//				|| up > 0 && down < 0)
//			{
//				up *= -1;
//				down *= -1;
//			}
//
//			int divisor = gcd(up>0?up:-up, down>0?down:-down);
//			up /= divisor;
//			down /= divisor;
//			spi.insert(make_pair(up, down));
//		}		
//	}
//
//	cout << spi.size() + xy[0] + xy[1] << endl;
//
//	return 0;
//}